import Vue from 'vue';
import VueRouter from 'vue-router';
// eslint-disable-next-line no-unused-vars
import Login from '@/components/Login';
import Home from '@/components/Home';
import Welcome from '@/components/Welcome';
import Users from '@/components/user/Users';
import Rights from '@/components/power/Rights';
import Roles from '@/components/power/Roles';

Vue.use(VueRouter);

const router = new VueRouter({
  routes: [
    { path: '/', redirect: '/login' },
    // 当用户访问 /login 的时候, 会展示 Login 这个组件;也就是路由重定向
    { path: '/login', component: Login },
    {
      path: '/home',
      component: Home,
      redirect: '/welcome',
      children: [
        { path: '/welcome', component: Welcome },
        { path: '/users', component: Users },
        { path: '/rights', component: Rights },
        { path: '/roles', component: Roles }
      ]
    }
  ]
});

// 暴露出去前,先挂载路由导航守卫
router.beforeEach((to, from, next) => {
  // to 将要访问的路径
  // from 从哪个路径而来
  // next 是一个函数 表示放行
  // next() 放行, next('/login')强制跳转
  if (to.path === '/login') {
    sessionStorage.removeItem('activePath');
    return next();
  }
  // 获取 token
  const tokenstr = window.sessionStorage.getItem('token');
  if (!tokenstr) return next('/login');
  next();
});

export default router;
